package code18_design.singleton;

// 懒汉式
public class Cat {
	// 1.构造方法私有化
	private Cat(){}
	
	// 保存实例化的对象(唯一实例)
	private static Cat cat;
	
	// 并向整个系统提供这个实例。
	public static Cat getIntance() {
		if (null == cat) {
			cat = new Cat();
		}
		return cat;
	}
	// 修改代码, 让其变成线程安全的 懒汉式
	public static Cat getIntance2() {
//		if (null == cat) {
			synchronized (Cat.class) {
				if (null == cat) {
					cat = new Cat();
				}
			}
//		}
		return cat;
	}
}
